import tornado
import tornado.options
from tornado.web import RequestHandler


class IndexHandler(RequestHandler):
    """对应/"""
    def get(self):
        self.write("主页")

'''重定向'''
class LoginHandler(RequestHandler):
    """对应/login"""
    #创建一个　web实例相当于创建一个线程！
    def get(self):
        self.write('<form method="post"><input type="submit" value="登陆"></form>')

    def post(self):
        self.redirect("/")

'''默认错误处理规则！'''
class IndexHandler_erro(RequestHandler):
    def get(self):
        self.write("主页")
        #content 是没有意义的！在此处停止运行代码
        self.send_error(404, content="出现404错误")

'''自定义错误处理规则！'''
class IndexHandler_erro2(RequestHandler):
    def get(self):
        err_code = self.get_argument("code", None) # 注意返回的是unicode字符串，下同
        err_title = self.get_argument("title", "")
        err_content = self.get_argument("content", "")
        if err_code:
            self.send_error(err_code, title=err_title, content=err_content)
        else:
            self.write("主页")

    def write_error(self, status_code, **kwargs):
        self.write(u"<h1>出错了，程序员GG正在赶过来！</h1>")
        self.write(u"<p>错误名：%s</p>" % kwargs["title"])
        self.write(u"<p>错误详情：%s</p>" % kwargs["content"])

def make_app():
    #创建一个web实例给前端！
    return tornado.web.Application([
        (r"/", LoginHandler),
        (r"/login",LoginHandler),
        (r"/erro",IndexHandler_erro),
        (r"/erro2",IndexHandler_erro2),
    ])

if __name__ == "__main__":
    tornado.options.parse_command_line()
    app = make_app()
    app.listen(8888)
    tornado.ioloop.IOLoop.current().start()
